package com.common.requestvo.system;

import com.common.vo.ReqBaseVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;

/**
 * 菜单Vo
 *
 * @author johnny
 * @create 2020-07-11 下午4:12
 **/
@Data
@ApiModel(value = "菜单查询对象")
public class MenuReqVo extends ReqBaseVo {

    @ApiModelProperty(hidden = true)
    private Long id;

    @ApiModelProperty(value = "菜单名称", example = "用户列表")
    private String label;

    @ApiModelProperty(hidden = true)
    private Integer level;

    @ApiModelProperty(value = "菜单key")
    private String menuKey;
    /**
     * 菜单类型 页面菜单/操作按钮
     */
    @ApiModelProperty(value = "菜单类型", example = "0", notes = "0:菜单 1:按钮")
    private Integer type;

    @ApiModelProperty(value = "路径")
    private String path;

    /**
     * 容器组件 使用Layout
     */
    @ApiModelProperty(value = "组件")
    private String component;

    /**
     * 图标 icon
     */
    @ApiModelProperty(value = "图标")
    private String icon;

    @ApiModelProperty(value = "父菜单Id")
    private Long parentId;

    @ApiModelProperty(value = "菜单描述")
    private String description;
    @ApiModelProperty(value = "菜单排序值", notes = "值越小越靠前")
    private BigDecimal sortOrder;

    @ApiModelProperty(value = "是否有效", example = "true")
    private Boolean enable;

    @ApiModelProperty(value = "按钮角色", example = "/addRole", notes = "对应前端按钮权限")
    private String buttonRole;

    @ApiModelProperty(value = "按钮角色前缀", example = "/system/roles", notes = "按钮父菜单Path")
    private String buttonRolePrefix;


    /**
     * 灵活动态配置 菜单的
     */
    @ApiModelProperty(value = "路由是否在侧边栏导航中显示", example = "true", dataType = "boolean")
    private boolean sidebar;
    @ApiModelProperty(value = "路由是否在面包屑中显示", example = "true", dataType = "boolean")
    private boolean breadcrumb;
    @ApiModelProperty(value = "是否高亮侧边栏", example = "/news/list", notes = "当设置了该属性会高亮对应侧边栏")
    private String activeMenu;

}